home *** CD-ROM | disk | FTP | other *** search
- Autor: Gerd Wieczorek
- SMail: Berliner Str.1
- 14959 Trebbin
- BRD
-
- EMail: gwieifjc@sp.zrz.tu-berlin.de
- (1x wöchentlich kontrolliert)
-
-
- Prime (Version 3)
- -----------------
-
- Dieses kurze Programm berechnet alle Primzahlen bis zu einer angegebenen
- Grenze und bietet die Möglichkeit, sie in einer Datei abzuspeichern.
- Es wird das Verfahren nach Eratosthenes ( Sieb des ~ ) verwendet. Das
- Programm benötigt einen Prozessor >= 68020.
-
-
- Benutzung
- ---------
-
- Prime kann nur in der Shell aufgerufen werden.
- Befehlsschablone: Prime MAX/A/N,FILE/K,BIGBUFFER=BB/S
-
- Bedeutung der Optionen
- MAX - Obergrenze für die Suche nach Primzahlen
- FILE - Datei, in die die Primzahlen geschrieben werden
- BIGBUFFER - Es wird ein größerer interner Buffer für die Ausgabe
- verwendet, ohne BB: 8 KByte, mit BB: 256 KByte
-
- Der Befehl kann während der Ausgabe mit CTRL-C unterbrochen werden. Wird
- kein Dateiname angegeben, werden auch keine Primzahlen ausgegeben.
-
-
- Geschwindigkeit
- ---------------
-
- Nachdem in der letzten Zeit einige neue Programme zur Primzahl-
- Berechnung im AMINET auftauchten, die dazu noch schneller waren als mein
- eigenes :-(, habe ich mich an den Computer gesetzt und an Prime gefeilt.
- Dabei beseitigte ich gleich noch den einen FPU-Aufruf, der in der älteren
- Version genutzt wurde. Die Siebroutine ist nun 14 Befehle = 32 Byte groß,
- und benutzt für die Arithmetik nur Addierbefehle.
-
- Auf meinem Rechner (A500, 68030/14MHz, 68882/20MHz, 4/1 MB) benötigt
- der Aufruf "Prime MAX .. FILE DH3:Test BB" folgende Zeiten:
-
- MAX Sieve Count Output Anzahl der
- [s] [s] [s] Primzahlen
- 1000000 1.00 0.12 10.98 78498
- 2000000 2.10 0.22 20.68 148933
- 5000000 5.58 0.58 49.36 348513
- 10000000 11.68 1.12 96.02 664579
- 15000000 17.90 1.70 142.26 970704
- 20000000 24.24 2.26 186.88 1270607
- 25000000 30.70 2.82 231.54 1565927
- 30000000 37.18 3.38 275.96 1857859
- 35000000 43.72 3.94 320.52 2146775
- 40000000 50.30 4.50 363.62 2433654
- 45000000 56.92 5.06 407.60 2718160
- 64000000 82.32 7.20 588.36 3785086
-
- Gegenüber der letzten Version arbeitet die Sieb-Routine ungefähr doppelt
- so schnell, die Zählroutine wurde um den Faktor 10 schneller.
-
- Die Anzahl der Primzahlen bis zur Obergrenze MAX läßt sich mit MAX/ln(MAX)
- abschätzen. Die Länge der erzeugten Textdatei beträgt ca. 10 * Anzahl der
- Primzahlen.
- Prime arbeitet mit VMM zusammen und nutzt eventuell vorhandenen virtuellen
- Speicher. Benötigt werden ca. MAX/16 in KB plus den eingestellten Ausgabe-
- buffer. Aufgrund der vielen Speicherzugriffe verlangsamt virtueller
- Speicher das Programm enorm. Ebenfalls anzuraten ist das Anschalten der
- Prozessor-Caches ( ca. 40% schneller bei meinem 68030 ).
-
- Ansonsten würde ich mich über Anmerkungen, Vorschläge, Bugmeldungen
- freuen. Wer keine Vorschläge hat, sollte mir eine kleine E-Mail mit
- Geschwindigkeitsangaben ähnlich meiner schicken, natürlich unter Angabe
- der Rechnerkonfiguration.
-
- Viel Vergnügen beim Ermitteln von Primzahlen !
-
- Es gelten die üblichen Hinweise:
- Die Benutzung von Prime erfolgt auf eigene Gefahr. Für Schäden, die sich
- aus der Benutzung von Prime ergeben, bin ich nicht haftbar zu machen. Wenn
- jemand Prime in einem anderen Archiv einschließen will, muß er mich vorher
- per e-mail kontakten.
-
-